跳到主要内容

游戏

chat

发送聊天

  • 参数
    • target (string) - 聊天对象
      • 全体 : 所有玩家都能看到聊天内容
      • 队伍 : 只有同一个队伍的玩家能看到聊天内容
    • msg (string) - 聊天内容
base.game:chat('队伍', '大招准备就绪!')

exit

退出游戏

base.game:exit()

input_mouse

获取鼠标位置

  • 返回
    • point (point) - 位置
local point = base.game:input_mouse()

key_state

获取按键状态

  • 参数
    • key (string) - 按键名
  • 返回
    • state (boolean) - 是否按下

按键名使用"Ctrl"来判断任意一个Ctrl键,使用"LeftCtrl""RightCtrl"来精确判断某一个Ctrl键。Alt键与Shift键同理。

local state = base.game:key_state 'Ctrl'

selected_unit

获取选中的单位

  • 返回
    • unit (unit) - 选中的单位

如果没有选中单位,则返回nil

local unit = base.game:selected_unit()

show_timer

获取显示时间

  • 返回
    • time (number) - 显示时间(秒)

负数表示处于倒计时状态。

local time = base.game:show_timer()

set_game_scene

加载游戏场景。 可以在MapInfo.ini中配置bAutoLoadScene来控制是否要自动加载场景。

客户端aip:

  • 切换客户端场景(影响地形、小地图、声音):
  • 参数
    • scene_name (string) 目标场景名称
    • map_file (string) map.xml文件名
    • height_file (string) HeightData.dat文件名
    • sight_file (string) Sight.dat文件名
    • minmap_template_name(string) MiniMap_Template 小地图模板名称
  • 返回
    • success (bool) 是否创建成功(太早创建可能会失败,一般在收到'游戏-属性变化'后调用此方法)
local result = base.game:set_game_scene('scene_name', 'map.xml', 'HeightData.dat', 'Sight.dat', 'minimap_template_name')

use_light_group

切换灯光组

  • 参数
    • path (string) light group 文件资源路径
    • time (nember) 切换时间
  • 返回
--两秒内切换到plane灯光组
game.use_light_group('Editor/Res/Light/plane.lightgroup', 2)

get_actors_at_screen_xy

获取屏幕位置的单位和模型表现

  • 参数
    • x (number) 屏幕位置x
    • y (nember) 屏幕位置y
  • 返回 摄像机对屏幕位置发射射线所碰到的所有单位或模型表现的id列表,单位的id>0, 模型表现的id<0
--获取鼠标位置并返回鼠标位置对应的所有单位和模型表现的id
local x,y = common.get_mouse_screen_pos()
local actors = game.get_actors_at_screen_xy(x, y)
if actors then
for k, v in pairs(actors) do -- v为id
if v > 0 then
log.info('unit id', v, base.unit(v))
elseif v < 0 then
log.info('actor id', v, base.actor_info().actor_map[v])
end
end
end